#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__author__ = "Administrator"
__name__="prodcons"
__date__="2016/9/19"
__time__="15:03"
"""
# 生产者和消费者相互独立并且并发地运行。
from random import randint
from time import sleep
from Queue import Queue
from myThread import MyThread

def writeQ(queue):
    print 'producing object for Q ...'
    queue.put('xxx',1)
    print "size now",queue.qsize()

def readQ(queue):
    val = queue.get(1)
    print 'consumed object from Q ... size now',queue.qsize()

def writer(queue,loops):
    for i in range(loops):
        writeQ(queue)
        sleep(randint(1,3))
def reader(queue,loops):
    for i in range(loops):
        readQ(queue)
        sleep(randint(2,5))
funcs = [writer,reader]

nfuncs = range(len(funcs))

def main():
    nloops = randint(2,5)
    q = Queue(32)
    threads = []

    for i in nfuncs:
        t = MyThread(funcs[i],(q,nloops),funcs[i].__name__)
        threads.append(t)

    for i in nfuncs:
        threads[i].start()

    for i in nfuncs:
        threads[i].join()

    print 'all DONE ...'

if __name__ == '__main__':
    main()



























